package cn.jsj.invite.dao;


import cn.jsj.invite.pojo.InvitationInfo;
import cn.jsj.invite.pojo.SchoolAdminEnt;
import cn.jsj.invite.pojo.SuperAdminInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface SuperAdminDao {

    /**
     * 根据用户名和密码获取一个超管的信息
     *
     * @param name     用户名
     * @param password 密码
     * @return 超管信息对象
     */
    SuperAdminInfo selectOneSuperAdminByNameAndPassword(@Param("name") String name, @Param("password") String password);

    /**
     * 根据旧密码和id 超管修改密码
     *
     * @param oldPassword 旧密码
     * @param newPassword 新密码
     * @param id          超管ID
     * @return 1：成功 0：失败
     */
    Integer updateSuperPasswordByIdInt(@Param("oldPassword") String oldPassword, @Param("newPassword") String newPassword, @Param("id") Integer id);

    /**
     * 超管根据学校管理员ID和学校ID 删除学校管理员
     *
     * @param schoolAdminId 学校管理员ID
     * @param schoolId      学校ID
     * @return 1：成功  0：失败
     */
    Integer deleteSchoolAdminByAdminId(@Param("schoolAdminId") Integer schoolAdminId, @Param("schoolId") Integer schoolId);

    /**
     * 超管根据学校ID查询所有的帖子
     *
     * @param schoolId 学校ID
     * @return 帖子信息集合
     */
    List<InvitationInfo> selectAllPageWithSchoolId(@Param("schoolId") Integer schoolId);

    /**
     * 根据ID查询一个超管的信息
     *
     * @param superId 超管ID
     * @return 超管信息
     */
    SuperAdminInfo selectOneSuperAdminById(@Param("superId") Integer superId);

    /**
     * 查询所有学校管理员
     *
     * @return 学校管理员信息集合
     */
    List<SchoolAdminEnt> selectAllSchoolAdmin();

}
